package com.jhd.fuzhou.service;


import com.jhd.fuzhou.vo.JsonForResult;

import java.util.Map;

import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.QueryMap;
import retrofit2.http.Streaming;

public interface SupervisionService {
    //首页获取任务列表的接口
    @GET("supervise/supervisionInspection/getSupervisionInspectionTaskSituation")
    Call<JsonForResult> getSupervisionInspectionTaskSituation(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //根据inspectionId获取SupervisionInspection
    @GET("supervise/supervisionInspection/getSupervisionInspectioById")
    Call<JsonForResult> getSupervisionInspectioById(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //查询违法事实库列表
    @GET("supervise/illegalFact/getIllegalRecordDtlById")
    Call<JsonForResult> getIllegalRecordDtlById(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //查询违法事实库列表
    @GET("supervise/supervisedUnit/getAddressByUnitIdAndCredit")
    Call<JsonForResult> getAddressByUnitIdAndCredit(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //文书号领用-获取列表
    @GET("supervise/documentNoClaim/getDocumentNoClaimList")
    Call<JsonForResult> getDocumentNoClaimList(@Header("Authorization") String token, @QueryMap Map<String, Object> params);
    //根据被监督单位的id获取unitVo
    @GET("supervise/supervisedUnit/getSupervisedUnitById")
    Call<JsonForResult> getSupervisedUnitById(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //获取单位列表的接口
    @GET("supervise/supervisedUnit/getSupervisedUnitList")
    Call<JsonForResult> getSupervisedUnitList(@Header("Authorization") String token, @QueryMap Map<String, Object> params);
    //获取所属专业的列表的接口
    @GET("supervise/specialityCategory/getMajorSpecialitySelector")
    Call<JsonForResult> getMajorSpecialitySelector(@Header("Authorization") String token);
    //根据所属专业的id获取专业明细的列表的接口，传parentId
    @GET("supervise/specialityCategory/getMinorSpecialitySelector")
    Call<JsonForResult> getMinorSpecialitySelector(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //获取监督人员列表，传deptId,joinSuperviseWork(是否参与监督工作)
    @GET("personInfo/getPersonInfoList")
    Call<JsonForResult> getPersonInfoList(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //查询违法事实库传id
    @GET("supervise/enforceBasis/getEnforceBasisById")
    Call<JsonForResult> getEnforceBasisById(@Header("Authorization") String token, @QueryMap Map<String, String> params);
    //查询违法事实库列表
    @GET("supervise/enforceBasis/getEnforceBasisList")
    Call<JsonForResult> getEnforceBasisList(@Header("Authorization") String token, @QueryMap Map<String, Object> params);
    //获取问题列表
    @GET("supervise/superviseInspectQuestionBank/getSuperviseQuestionTree")
    Call<JsonForResult> getSuperviseQuestionTree(@Header("Authorization") String token,@QueryMap Map<String, String> params);
    //判断文书号是否被领用
    @POST("supervise/superviseOpinion/selectDocumentNoIsUsed")
    Call<JsonForResult> selectDocumentNoIsUsed(@Header("Authorization") String token, @Body RequestBody requestBody);
    //获取问题列表
    @GET("supervise/superviseInspectQuestionBank/getSuperviseQuestionAndOption")
    Call<JsonForResult> getSuperviseQuestionAndOption(@Header("Authorization") String token,@QueryMap Map<String, String> params);
    //获取常用问题列表，传keyword，监督检查id（非必传）
    @GET("supervise/enquiryQuestionBank/getEnquiryQuestionBankList")
    Call<JsonForResult> getEnquiryQuestionBankList(@Header("Authorization") String token,@QueryMap Map<String, String> params);
    //获取检测列表
    @POST("dictionaryType/getValueList")
    Call<JsonForResult> getValueList(@Header("Authorization") String token,@Body RequestBody requestBody);
    //上传图片(传file)
    @Multipart
    @POST("upload/uploadFile")
    Call<JsonForResult> uploadFile(@Header("Authorization") String token, @PartMap Map<String,Object> params, @Part MultipartBody.Part body);
    //上传图片(传file)
    @Multipart
    @POST("upload/uploadFileByPos")
    Call<JsonForResult> uploadFileByPos(@Header("Authorization") String token, @QueryMap Map<String,Object> params, @Part MultipartBody.Part body);
    //日常监督保存表单
    @POST("supervise/supervisionInspection/saveSupervisionInspection")
    Call<JsonForResult> saveSupervisionInspection(@Header("Authorization") String token,@Body RequestBody requestBody);
    //保存文书号和文书路径关联
    @POST("supervise/superviseOpinion/saveDocumentNoRecordList")
    Call<JsonForResult> saveDocumentNoRecord(@Header("Authorization") String token,@Body RequestBody requestBody);

}
